package Exception;

import java.util.Scanner;

/*
* 自定义异常类测试：
* 要求：
*   模拟注册操作，如果用户名已存在，则抛出异常并提示：亲，该用户名已被注册
*
* 分析：
*   1、使用数组保存已经注册过的用户名(数据库)
*   2、使用Scanner获取用户输入的注册的用户名(前端：页面)
*   3、定义一个方法，对用户注册的用户名进行判断：
*       遍历存储已经注册过用户名的数组，获取每一个用户名
*       使用获取的用户名和用户输入的用户名比较
*           true:
*               用户名已存在，抛出
*           false:
*               继续遍历比较
*       如果循环结束了还没有找到重复的用户名，提示用户"恭喜注册成功"
* */
public class MyExcetion {
//    1、使用数组保存已经注册过的用户名(数据库)
    static String[] uesrnames = {"张三","李四","王五"};

    public static void main(String[] args) /*throws RegisterException*/ {
//        2、使用Scanner获取用户输入的注册的用户名(前端：页面)
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入您要注册的用户名：");
        String username = sc.next();
        try {
            CheckUsername(username);
        } catch (RegisterException e) {
            e.printStackTrace();
        }
    }

//    3、定义一个方法，对用户注册的用户名进行判断
    public static void CheckUsername(String username) throws RegisterException {
//        遍历存储已经注册过用户名的数组，获取每一个用户名
        for (String name : uesrnames) {
//            使用获取的用户名和用户输入的用户名比较
            if(name.equals(username)){
/*                try {
                    throw new RegisterException("亲，该用户名已经被注册！");
                } catch (RegisterException e) {
                    e.printStackTrace();
                    return;
                }*/
                throw new RegisterException("亲，该用户名已经被注册！");
            }
        }
//        如果循环结束了还没有找到重复的用户名，提示用户"恭喜注册成功"
        System.out.println("恭喜注册成功");
    }
}
